<?php
// Prevent loading this file directly
defined( 'ABSPATH' ) || exit;

if ( ! class_exists( 'RWMB_Fieldset_Text_Field' ) ) {
	class RWMB_Fieldset_Text_Field extends RWMB_Field {
		/**
		 * Get field HTML
		 *
		 * @param mixed $meta
		 * @param array $field
		 *
		 * @return string
		 */
		static function html( $meta, $field ) {
			if ( 1 == count( $meta ) && '' == trim( $meta[0] ) ) {
				$meta = '';
			}

			$html   = array();
			$before = '<fieldset><legend>' . $field['desc'] . '</legend>';
			$after  = '</fieldset>';

			$tpl = '<label>%s <input type="text" class="rwmb-fieldset-text" name="%s[%s][%d]" placeholder="%s" value="%s" /></label>';

			for ( $n = 0; $n < $field['rows']; $n ++ ) {
				foreach ( $field['options'] as $k => $v ) {
					$fid = $field['id'];
					if ( is_array( $meta ) && ! empty( $meta ) ) {
						$html[] = sprintf( $tpl, $k, $fid, $v, $n, $k, $meta[$v][$n] );
					} else {
						$html[] = sprintf( $tpl, $k, $fid, $v, $n, $k, '' );
					}
				}
				$html[] = '<br>';
			}

			$out = $before . implode( ' ', $html ) . $after;

			return $out;
		}

		/**
		 * Get meta value
		 *
		 * @param $post_id
		 * @param $saved
		 * @param $field
		 *
		 * @return array
		 */
		static function meta( $post_id, $saved, $field ) {
			$meta = get_post_meta( $post_id, $field['id'] );

			if ( is_array( $meta ) && ! empty( $meta ) ) {
				$meta = $meta[0];
			}

			return $meta;
		}

		/**
		 * Save meta value
		 *
		 * @param $new
		 * @param $old
		 * @param $post_id
		 * @param $field
		 */
		static function save( $new, $old, $post_id, $field ) {
			update_post_meta( $post_id, $field['id'], $new, $old );
		}
	}
}
